// File:    CategoriaIncidencia.cs
// Author:  bigmaster
// Created: viernes, 22 de noviembre de 2013 1:14:56
// Purpose: Definition of Class CategoriaIncidencia

using System;

namespace ServiceDeskUNAB.Modelo
{
    public class CategoriaIncidencia
    {
        public CategoriaIncidencia()
        {

        }

        private int idCategoriaIncidencia;

        public int IdCategoriaIncidencia
        {
            get { return idCategoriaIncidencia; }
            set { idCategoriaIncidencia = value; }
        }
        private string nombreCategoriaIncidencia;

        public string NombreCategoriaIncidencia
        {
            get { return nombreCategoriaIncidencia; }
            set { nombreCategoriaIncidencia = value; }
        }

        public System.Collections.Generic.List<Incidencia> incidencia;

        /// <summary>
        /// Property for collection of Incidencia
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<Incidencia> Incidencia
        {
            get
            {
                if (incidencia == null)
                    incidencia = new System.Collections.Generic.List<Incidencia>();
                return incidencia;
            }
            set
            {
                RemoveAllIncidencia();
                if (value != null)
                {
                    foreach (Incidencia oIncidencia in value)
                        AddIncidencia(oIncidencia);
                }
            }
        }

        /// <summary>
        /// Add a new Incidencia in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddIncidencia(Incidencia newIncidencia)
        {
            if (newIncidencia == null)
                return;
            if (this.incidencia == null)
                this.incidencia = new System.Collections.Generic.List<Incidencia>();
            if (!this.incidencia.Contains(newIncidencia))
            {
                this.incidencia.Add(newIncidencia);
                newIncidencia.AddCategoriaIncidencia(this);
            }
        }

        /// <summary>
        /// Remove an existing Incidencia from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveIncidencia(Incidencia oldIncidencia)
        {
            if (oldIncidencia == null)
                return;
            if (this.incidencia != null)
                if (this.incidencia.Contains(oldIncidencia))
                {
                    this.incidencia.Remove(oldIncidencia);
                    oldIncidencia.RemoveCategoriaIncidencia(this);
                }
        }

        /// <summary>
        /// Remove all instances of Incidencia from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllIncidencia()
        {
            if (incidencia != null)
            {
                System.Collections.ArrayList tmpIncidencia = new System.Collections.ArrayList();
                foreach (Incidencia oldIncidencia in incidencia)
                    tmpIncidencia.Add(oldIncidencia);
                incidencia.Clear();
                foreach (Incidencia oldIncidencia in tmpIncidencia)
                    oldIncidencia.RemoveCategoriaIncidencia(this);
                tmpIncidencia.Clear();
            }
        }
    }
}